<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of produtos_categoria_model
 *
 * @author souzadavi
 */
class Produtos_categorias_model extends CI_Model {

    //put your code here

    public function __construct() {
        parent::__construct();
        $this->load->config('parametros');
    }

    public function get_nome($_nome) {
        $this->db->where('nome', trim($_nome));
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria'));
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }

    public function consultar($_id) {
        $this->db->where('id', $_id);
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria'));
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }

    public function consultar_total() {
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria'));
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }

    public function cadastrar($_dados = array()) {
        $this->db->set($_dados);
        $this->db->insert($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria'));
        if ($this->db->affected_rows() > 0) {
            return $this->db->insert_id();
        } else {
            return NULL;
        }
    }

    public function alterar($_id, $_dados = array()) {
        $this->db->where('id', $_id);
        $this->db->set($_dados);
        $this->db->update($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria'));
        if ($this->db->affected_rows() > 0) {
            return $_id;
        } else {
            return NULL;
        }
    }

    public function excluir($_id) {
        $this->db->where('id', $_id);
        $this->db->delete($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria'));
        if ($this->db->affected_rows() > 0) {
            return TRUE;
        } else {
            return NULL;
        }
    }

    public function consultar_categoria_idiomas() {
        $this->db->where($this->config->item('tblLocalIdiomas') . '.codigo', $this->config->item('language'));
        $this->db->order_by('pai_cat ASC, nome_cat ASC');

        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoriaInfo'), $this->config->item('tblProdutosCategoria') . '.id = ' . $this->config->item('tblProdutosCategoriaInfo') . '.categoria_id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblLocalIdiomas'), $this->config->item('tblLocalIdiomas') . '.id = ' . $this->config->item('tblProdutosCategoriaInfo') . '.idiomas_id', 'INNER');

        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria'));

        //pre($this->db->last_query());
        //pre($query->result());

        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }

    public function consultar_categorias_pais() {
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoriaInfo'), $this->config->item('tblProdutosCategoria') . '.id = ' . $this->config->item('tblProdutosCategoriaInfo') . '.categoria_id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblLocalIdiomas'), $this->config->item('tblLocalIdiomas') . '.id = ' . $this->config->item('tblProdutosCategoriaInfo') . '.idiomas_id', 'INNER');

        $this->db->where($this->config->item('tblLocalIdiomas') . '.codigo', $this->config->item('language'));
        $this->db->where('pai_cat', null);
        
        $this->db->order_by('pai_cat ASC, nome_cat ASC');
        
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria'));

        //pre($this->db->last_query());
        //pre($query->result());

        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }

    public function combo() {

        $this->db->where($this->config->item('tblLocalIdiomas') . '.codigo', $this->config->item('language'));
        $this->db->order_by('pai_cat ASC, nome_cat ASC');

        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoriaInfo'), $this->config->item('tblProdutosCategoria') . '.id = ' . $this->config->item('tblProdutosCategoriaInfo') . '.categoria_id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblLocalIdiomas'), $this->config->item('tblLocalIdiomas') . '.id = ' . $this->config->item('tblProdutosCategoriaInfo') . '.idiomas_id', 'INNER');

        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria'));

        //pre($this->db->last_query());

        if ($query->num_rows() > 0) {
            return $this->_combo_categorias_option($query->result());
        } else {
            return $this->_combo_categorias_option();
        }
    }

    private function _combo_categorias_option($dados = array(), $option = array()) {
        $_new_array = array();
        $_new_array[''] = 'Selecionar';
        if (count($dados) > 0) {
            foreach ($dados as $v) {

                $option[$v->pai_cat][$v->categoria_id] = $v->nome_cat;

                if ($v->pai_cat > 0) {
                    $option[$v->pai_cat][$v->categoria_id] = '---' . $v->nome_cat;
                }
            }


            if (count($option) > 0) {
                foreach ($option as $value) {
                    foreach ($value as $ke => $va) {
                        $_new_array[$ke] = $va;
                    }
                }
            }
        }
        return $_new_array;
    }

}